home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995…tember: Reference Library / Dev.CD Sep 95 RL / Dev.CD Sep 95 RL.toast / mac / Technical Documentation / develop / develop Issue 12 code / Components / Headers / MathComponent.h < prev    next >
Encoding:
Text File  |  1994-12-02  |  4.2 KB  |  158 lines  |  [TEXT/MMCC]

  1. /*
  2.     File:        MathComponent.h
  3.  
  4.     Contains:    Header file for math component routines.
  5.  
  6.     Written by:    Gary Woodcock
  7.  
  8.     Copyright:    © 1992 by Apple Computer, Inc.
  9.  
  10.     Change History (most recent first):
  11.  
  12. */
  13.  
  14. //-----------------------------------------------------------------------
  15. // Includes
  16.  
  17. #ifndef    _MATHCOMPONENT_
  18. #define    _MATHCOMPONENT_
  19.  
  20. #include <QuickTimeComponents.h>
  21.  
  22. //-----------------------------------------------------------------------
  23. // Public constants
  24.  
  25. #define    mathComponentType        'math'
  26.  
  27. // Math component request codes
  28. enum
  29. {
  30.     kDoDivideSelect = 1,
  31.     kDoMultiplySelect
  32. };
  33.  
  34.  
  35.  
  36. //-----------------------------------------------------------------------
  37. // Public types
  38.  
  39. typedef    ComponentInstance    MathComponent;
  40.  
  41. //-----------------------------------------------------------------------
  42. // Public interfaces
  43.  
  44. #ifdef __cplusplus
  45. extern "C" {
  46. #endif __cplusplus
  47.  
  48.  
  49. pascal    ComponentResult    DoDivide    (MathComponent    mathInstance,
  50.                                      short            numerator,
  51.                                      short            denominator,
  52.                                      short            *result)
  53.     ComponentCallNow (kDoDivideSelect, 0x08);
  54.     
  55. pascal    ComponentResult    DoMultiply    (MathComponent    mathInstance,
  56.                                      short            firstNum,
  57.                                      short            secondNum,
  58.                                      short            *result)
  59.                                      
  60.     ComponentCallNow (kDoMultiplySelect, 0x08);
  61.  
  62. // Glue to send a target request code to a component - comment this out if you're using 
  63. // QuickTime 1.5 or later
  64. /*
  65. pascal long    ComponentSetTarget (ComponentInstance ti, ComponentInstance target)
  66.     = ComponentCallNow (kComponentTargetSelect, 0x04);
  67. */
  68.  
  69. #ifdef powerc
  70. #define CallComponentFunctionWithStorageUniv(storage, params, funcName) \
  71.    CallComponentFunctionWithStorage(storage, params, &funcName##RD)
  72. #define CallComponentFunctionUniv(params, funcName) \
  73.    CallComponentFunction(params, &funcName##RD)
  74. #define INSTANTIATE_ROUTINE_DESCRIPTOR(funcName) RoutineDescriptor funcName##RD = \
  75.    BUILD_ROUTINE_DESCRIPTOR (upp##funcName##ProcInfo, funcName)
  76. #else
  77. #define CallComponentFunctionWithStorageUniv(storage, params, funcName) \
  78.    CallComponentFunctionWithStorage(storage, params, (ComponentFunctionUPP)funcName)
  79. #define CallComponentFunctionUniv(params, funcName) \
  80.    CallComponentFunction(params, (ComponentFunctionUPP)funcName)
  81. #endif
  82.  
  83.  
  84. enum {
  85.     uppMathOpenProcInfo = kPascalStackBased
  86.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  87.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ComponentInstance)))
  88. };
  89.  
  90. enum {
  91.     uppMathCloseProcInfo = kPascalStackBased
  92.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  93.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  94.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(ComponentInstance)))
  95. };
  96.  
  97.  
  98. enum {
  99.     uppMoMathCanDoProcInfo = kPascalStackBased
  100.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  101.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(short)))
  102. };
  103.  
  104. enum {
  105.     uppMathCanDoProcInfo = kPascalStackBased
  106.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  107.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(short)))
  108. };
  109.  
  110. enum {
  111.     uppMathVersionProcInfo = kPascalStackBased
  112.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  113. };
  114.  
  115. enum {
  116.     uppMathTargetProcInfo = kPascalStackBased
  117.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  118.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  119.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(ComponentInstance)))
  120. };
  121.  
  122.  
  123. enum {
  124.     uppMathDoDivideProcInfo = kPascalStackBased
  125.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  126.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(short)))
  127.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  128.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short*)))
  129. };
  130.  
  131. enum {
  132.     uppMathDoMultiplyProcInfo = kPascalStackBased
  133.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  134.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(short)))
  135.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  136.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short*)))
  137. };
  138.  
  139. enum {
  140.     uppMoMathDoAddProcInfo = kPascalStackBased
  141.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  142.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(short)))
  143.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  144.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short*)))
  145. };
  146.  
  147.  
  148.  
  149.  
  150.  
  151. #ifdef __cplusplus
  152. }
  153. #endif __cplusplus
  154.  
  155. #endif _MATHCOMPONENT_
  156.  
  157. //-----------------------------------------------------------------------
  158.